home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / ShellPanel / Alert.m < prev    next >
Text File  |  1995-06-12  |  1KB  |  45 lines

  1. /* File:    Alert.m - (Interactive) Unix shell version of NXRunAlertPanel
  2.  *
  3.  * By:        Christopher Lane (lane@sumex-aim.stanford.edu)
  4.  *
  5.  * Date:    10 November 1992
  6.  *
  7.  * Copyright:    1990, 1991 & 1992 by The Leland Stanford Junior University.
  8.  * This program may be distributed without restriction for non-commercial use.
  9.  */
  10.  
  11. #import <stdlib.h>
  12. #import <appkit/Panel.h>
  13. #import <appkit/Application.h>
  14.  
  15. //    int NXRunAlertPanel(const char *title, const char *msg, const char *defaultButton,
  16. //        const char *alternateButton, const char *otherButton, ...)
  17.  
  18. typedef enum {TITLE, MESSAGE, DEFAULT, ALTERNATE, OTHER, ARGC} ARGUMENTS;
  19. typedef enum {ALERTDEFAULT = EXIT_SUCCESS, ALERTALTERNATE, ALERTOTHER, ALERTERROR} RESULTS;
  20.  
  21. void main(int argc, char *argv[])
  22. {
  23.     int result, context;
  24.  
  25.     context = [(NXApp = [Application new]) activateSelf:YES];
  26.  
  27.     result = NXRunAlertPanel(
  28.         (argc > TITLE) ? [NXApp appName] : NULL,
  29.         (argc > MESSAGE) ? argv[MESSAGE] : NULL,
  30.         (argc > DEFAULT) ? argv[DEFAULT] : NULL,
  31.         (argc > ALTERNATE) ? argv[ALTERNATE] : NULL,
  32.         (argc > OTHER) ? argv[OTHER] : NULL
  33.         );
  34.  
  35.     if (context) (void) [NXApp activate:context];
  36.     [NXApp free];
  37.  
  38.     switch (result) {
  39.         case NX_ALERTDEFAULT: exit(ALERTDEFAULT);
  40.         case NX_ALERTALTERNATE: exit(ALERTALTERNATE);
  41.         case NX_ALERTOTHER: exit(ALERTOTHER);
  42.         }
  43.     exit(ALERTERROR);
  44. }
  45.